Component studio.extensions.nuxeo-jenkins-report
In bundle studio.extensions.nuxeo-jenkins-report
Contributions
- studio.extensions.nuxeo-jenkins-report--versioningRules
- studio.extensions.nuxeo-jenkins-report--directories
- studio.extensions.nuxeo-jenkins-report--types
- studio.extensions.nuxeo-jenkins-report--widgettypes
- studio.extensions.nuxeo-jenkins-report--schema
- studio.extensions.nuxeo-jenkins-report--typeFilter
- studio.extensions.nuxeo-jenkins-report--event-handlers
- studio.extensions.nuxeo-jenkins-report--actions
- studio.extensions.nuxeo-jenkins-report--filters
- studio.extensions.nuxeo-jenkins-report--chains
- studio.extensions.nuxeo-jenkins-report--templates
- studio.extensions.nuxeo-jenkins-report--layouts
- studio.extensions.nuxeo-jenkins-report--contentViews
- studio.extensions.nuxeo-jenkins-report--doctype
XML Source
<?xml version="1.0" encoding="UTF-8"?>
<component name="studio.extensions.nuxeo-jenkins-report" version="1.0.0">
<require>org.nuxeo.runtime.started</require>
<extension target="org.nuxeo.ecm.core.schema.TypeService" point="schema">
<schema name="jenkinsreport" prefix="jenkinsreport" src="data/schemas/jenkinsreport.xsd"/>
<schema name="jenkinsreportscontainer" prefix="jenkinsreports" src="data/schemas/jenkinsreportscontainer.xsd"/>
</extension>
<extension target="org.nuxeo.ecm.core.schema.TypeService" point="doctype">
<doctype name="JenkinsReport" extends="Document">
<schema name="jenkinsreport"/>
<schema name="dublincore"/>
<schema name="common"/>
<schema name="uid"/>
<facet name="Versionable"/>
</doctype>
<doctype name="JenkinsReportsContainer" extends="Document">
<schema name="jenkinsreportscontainer"/>
<schema name="dublincore"/>
<schema name="common"/>
<schema name="uid"/>
<facet name="SuperSpace"/>
<facet name="Folderish"/>
</doctype>
</extension>
<extension target="org.nuxeo.ecm.core.lifecycle.LifeCycleService" point="types">
<types>
<type name="JenkinsReport">default</type>
</types>
<types>
<type name="JenkinsReportsContainer">default</type>
</types>
</extension>
<extension target="org.nuxeo.ecm.platform.types.TypeService" point="types">
<type id="JenkinsReport">
<label>JenkinsReport</label>
<icon>/img/JENKINS.png</icon>
<bigIcon>/img/JENKINS.png</bigIcon>
<description></description>
<default-view>view_documents</default-view>
<layouts mode="create">
<layout>JenkinsReport@create</layout>
<layout>JenkinsReportJobs@create</layout>
<layout>JenkinsDutyComments@create</layout>
</layouts>
<layouts mode="edit">
<layout>JenkinsReport@edit</layout>
<layout>JenkinsReportJobs@edit</layout>
</layouts>
<layouts mode="view">
<layout>JenkinsReport@view</layout>
</layouts>
</type>
<type id="JenkinsReportsContainer">
<subtypes>
<type>JenkinsReport</type>
</subtypes>
</type>
<type id="JenkinsReportsContainer">
<label>JenkinsReportsContainer</label>
<icon>/img/JENKINS.png</icon>
<bigIcon>/img/JENKINS.png</bigIcon>
<description></description>
<default-view>view_documents</default-view>
<subtypes>
<type>JenkinsReport</type>
</subtypes>
<layouts mode="create">
<layout>layout@JenkinsReportsContainer-create</layout>
</layouts>
<layouts mode="edit">
<layout>layout@JenkinsReportsContainer-edit</layout>
</layouts>
<layouts mode="view">
<layout>layout@JenkinsReportsContainer-view</layout>
</layouts>
<contentViews category="content">
<contentView showInExportView="false">document_content</contentView>
</contentViews>
<contentViews category="trash_content">
<contentView showInExportView="false">document_trash_content</contentView>
</contentViews>
</type>
<type id="Folder">
<subtypes>
<type>JenkinsReportsContainer</type>
</subtypes>
</type>
<type id="Workspace">
<subtypes>
<type>JenkinsReportsContainer</type>
</subtypes>
</type>
</extension>
<extension target="org.nuxeo.ecm.platform.actions.ActionService" point="actions">
<action id="TAB_VIEW">
<filter id="jenkinsreport.deny.tab_view">
<rule grant="false">
<type>JenkinsReport</type>
</rule>
</filter>
</action>
<action id="TAB_CONTENT">
<filter id="jenkinsreportscontainer.deny.tab_content">
<rule grant="false">
<type>JenkinsReportsContainer</type>
</rule>
</filter>
</action>
<action id="JenkinsReportSendMail" label="Send Mail" enabled="true" order="0" type="link" immediate="false" icon="/img/jenkins_send_email.png" link="#{operationActionBean.doOperation('JenkinsReportSendMail')}">
<category>DOCUMENT_UPPER_ACTION</category>
<filter id="filter@JenkinsReportSendMail">
<rule grant="true">
<type>JenkinsReport</type>
</rule>
</filter>
</action>
<action id="JenkinsReportContainerSummary" link="/studio_tabs/studio_tab_JenkinsReportContainerSummary.xhtml" order="0" label="action.view.summary" type="rest_document_link">
<category>VIEW_ACTION_LIST</category>
<filter id="filter@tab@JenkinsReportContainerSummary">
<rule grant="true">
<type>JenkinsReportsContainer</type>
</rule>
</filter>
</action>
<action id="JenkinsReportSummary" link="/studio_tabs/studio_tab_JenkinsReportSummary.xhtml" order="0" label="action.view.summary" type="rest_document_link">
<category>VIEW_ACTION_LIST</category>
<filter id="filter@tab@JenkinsReportSummary">
<rule grant="true">
<type>JenkinsReport</type>
</rule>
</filter>
</action>
<action id="newJenkinsReport" link="#{documentActions.createDocument('JenkinsReport')}" label="New Jenkins report" icon="/icons/action_add.gif">
<category>SUBVIEW_UPPER_LIST</category>
<filter id="newJenkinsReport">
<rule grant="true">
<permission>AddChildren</permission>
<type>JenkinsReportsContainer</type>
</rule>
</filter>
</action>
<action id="JenkinsReportSendMail">
<properties>
<property name="confirmMessage">label.jenkins.sendMail.confirm</property>
<propertyList name="confirmMessageArgs">
<value>#{docSuggestionActions.getDocumentWithId(currentSuperSpace.id).getPropertyValue('jenkinsreports:report_email')}</value>
</propertyList>
</properties>
</action>
</extension> <extension target="org.nuxeo.ecm.platform.jbpm.core.JbpmService" point="typeFilter"> <type name="JenkinsReport"> <processDefinition>review_parallel</processDefinition>
<processDefinition>review_approbation</processDefinition>
</type>
<type name="JenkinsReportsContainer">
<processDefinition>review_parallel</processDefinition>
<processDefinition>review_approbation</processDefinition>
</type>
</extension>
<extension target="org.nuxeo.ecm.core.versioning.VersioningService" point="versioningRules">
<versioningRule typeName="JenkinsReport">
<initialState major="0" minor="0"/>
<options lifeCycleState="*">
<none default="true"/>
<minor/>
<major/>
</options>
</versioningRule>
<versioningRule typeName="JenkinsReportsContainer">
<initialState major="0" minor="0"/>
<options lifeCycleState="*">
<none default="true"/>
<minor/>
<major/>
</options>
</versioningRule>
</extension>
<extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager" point="layouts">
<layout name="layout@JenkinsReportsContainer-create">
<templates>
<template mode="any">/layouts/nuxeo-jenkins-report_layout_template.xhtml</template>
</templates>
<rows>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>title</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>description</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>view_url</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>claim_url</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>report_email</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>jira_url</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>jira_projects</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>list</widget>
</row>
</rows>
<widget name="title" type="text">
<labels>
<label mode="any">label.title</label>
</labels>
<translated>true</translated>
<fields>
<field>dc:title</field>
</fields>
<properties widgetMode="edit">
<property name="styleClass">dataInputText</property>
<property name="required">true</property>
</properties>
</widget>
<widget name="description" type="textarea">
<labels>
<label mode="any">label.description</label>
</labels>
<translated>true</translated>
<fields>
<field>dc:description</field>
</fields>
<properties widgetMode="edit">
<property name="styleClass">dataInputText</property>
</properties>
</widget>
<widget name="view_url" type="text">
<labels>
<label mode="any">label.jenkins.view_url</label>
</labels>
<helpLabels>
<label mode="any">label.jenkins.view_url.help</label>
</helpLabels>
<translated>true</translated>
<fields>
<field>jenkinsreports:view_url</field>
</fields>
<properties widgetMode="edit">
<property name="required">true</property>
<property name="size">70</property>
</properties>
</widget>
<widget name="claim_url" type="text">
<labels>
<label mode="any">label.jenkins.claim_url</label>
</labels>
<helpLabels>
<label mode="any">label.jenkins.claim_url.help</label>
</helpLabels>
<translated>true</translated>
<fields>
<field>jenkinsreports:claim_url</field>
</fields>
<properties widgetMode="edit">
<property name="size">70</property>
</properties>
</widget>
<widget name="report_email" type="text">
<labels>
<label mode="any">label.jenkins.report_email</label>
</labels>
<helpLabels>
<label mode="any">label.jenkins.report_email.help</label>
</helpLabels>
<translated>true</translated>
<fields>
<field>jenkinsreports:report_email</field>
</fields>
<properties widgetMode="edit">
<property name="required">true</property>
<property name="size">70</property>
</properties>
</widget>
<widget name="jira_url" type="text">
<labels>
<label mode="any">label.jenkins.jira_url</label>
</labels>
<helpLabels>
<label mode="any">label.jenkins.jira_url.help</label>
</helpLabels>
<translated>true</translated>
<fields>
<field>jenkinsreports:jira_url</field>
</fields>
<properties widgetMode="edit">
<property name="size">70</property>
</properties>
</widget>
<widget name="jira_projects" type="list">
<labels>
<label mode="any">label.jenkins.jira_projects</label>
</labels>
<helpLabels>
<label mode="any">label.jenkins.jira_projects.help</label>
</helpLabels>
<translated>true</translated>
<fields>
<field>jenkinsreports:jira_projects</field>
</fields>
<properties widgetMode="edit">
<property name="hideSubLabels">true</property>
</properties>
<subWidgets>
<widget name="sub0" type="text">
<labels>
<label mode="any"></label>
</labels>
<translated>false</translated>
<fields>
<field></field>
</fields>
<properties widgetMode="edit">
<property name="required">true</property>
</properties>
</widget>
</subWidgets>
</widget>
<widget name="list" type="list">
<labels>
<label mode="any">label.jenkins.duty_planning</label>
</labels>
<helpLabels>
<label mode="any">label.jenkins.duty_planning.help</label>
</helpLabels>
<translated>true</translated>
<fields>
<field>jenkinsreports:duty_planning</field>
</fields>
<properties widgetMode="edit">
<property name="orderable">true</property>
<property name="display">table</property>
<property name="hideSubLabels">false</property>
</properties>
<subWidgets>
<widget name="sub0" type="datetime">
<labels>
<label mode="any">label.jenkins.duty.date</label>
</labels>
<translated>true</translated>
<fields>
<field>date</field>
</fields>
<properties widgetMode="edit">
<property name="format">#{nxu:basicDateFormater()}</property>
<property name="required">true</property>
</properties>
</widget>
<widget name="sub1" type="text">
<labels>
<label mode="any">label.jenkins.duty.assignee</label>
</labels>
<translated>true</translated>
<fields>
<field>assignee</field>
</fields>
<properties widgetMode="edit">
<property name="required">true</property>
</properties>
</widget>
</subWidgets>
</widget>
</layout>
<layout name="layout@JenkinsReportsContainer-edit">
<templates>
<template mode="any">/layouts/nuxeo-jenkins-report_layout_template.xhtml</template>
</templates>
<rows>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>title</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>description</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>view_url</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>claim_url</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>report_email</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>jira_url</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>jira_projects</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>list</widget>
</row>
</rows>
<widget name="title" type="text">
<labels>
<label mode="any">label.title</label>
</labels>
<translated>true</translated>
<fields>
<field>dc:title</field>
</fields>
<properties widgetMode="edit">
<property name="styleClass">dataInputText</property>
<property name="required">true</property>
</properties>
</widget>
<widget name="description" type="textarea">
<labels>
<label mode="any">label.description</label>
</labels>
<translated>true</translated>
<fields>
<field>dc:description</field>
</fields>
<properties widgetMode="edit">
<property name="styleClass">dataInputText</property>
</properties>
</widget>
<widget name="view_url" type="text">
<labels>
<label mode="any">label.jenkins.view_url</label>
</labels>
<helpLabels>
<label mode="any">label.jenkins.view_url.help</label>
</helpLabels>
<translated>true</translated>
<fields>
<field>jenkinsreports:view_url</field>
</fields>
<properties widgetMode="edit">
<property name="required">true</property>
<property name="size">70</property>
</properties>
</widget>
<widget name="claim_url" type="text">
<labels>
<label mode="any">label.jenkins.claim_url</label>
</labels>
<helpLabels>
<label mode="any">label.jenkins.claim_url.help</label>
</helpLabels>
<translated>true</translated>
<fields>
<field>jenkinsreports:claim_url</field>
</fields>
<properties widgetMode="edit">
<property name="size">70</property>
</properties>
</widget>
<widget name="report_email" type="text">
<labels>
<label mode="any">label.jenkins.report_email</label>
</labels>
<helpLabels>
<label mode="any">label.jenkins.report_email.help</label>
</helpLabels>
<translated>true</translated>
<fields>
<field>jenkinsreports:report_email</field>
</fields>
<properties widgetMode="edit">
<property name="required">true</property>
<property name="size">70</property>
</properties>
</widget>
<widget name="jira_url" type="text">
<labels>
<label mode="any">label.jenkins.jira_url</label>
</labels>
<helpLabels>
<label mode="any">label.jenkins.jira_url.help</label>
</helpLabels>
<translated>true</translated>
<fields>
<field>jenkinsreports:jira_url</field>
</fields>
<properties widgetMode="edit">
<property name="size">70</property>
</properties>
</widget>
<widget name="jira_projects" type="list">
<labels>
<label mode="any">label.jenkins.jira_projects</label>
</labels>
<helpLabels>
<label mode="any">label.jenkins.jira_projects.help</label>
</helpLabels>
<translated>true</translated>
<fields>
<field>jenkinsreports:jira_projects</field>
</fields>
<properties widgetMode="edit">
<property name="hideSubLabels">true</property>
</properties>
<subWidgets>
<widget name="sub0" type="text">
<labels>
<label mode="any"></label>
</labels>
<translated>false</translated>
<fields>
<field></field>
</fields>
</widget>
</subWidgets>
</widget>
<widget name="list" type="list">
<labels>
<label mode="any">label.jenkins.duty_planning</label>
</labels>
<helpLabels>
<label mode="any">label.jenkins.duty_planning.help</label>
</helpLabels>
<translated>true</translated>
<fields>
<field>jenkinsreports:duty_planning</field>
</fields>
<properties widgetMode="edit">
<property name="orderable">true</property>
<property name="display">table</property>
<property name="hideSubLabels">false</property>
</properties>
<subWidgets>
<widget name="sub0" type="datetime">
<labels>
<label mode="any">label.jenkins.duty.date</label>
</labels>
<translated>true</translated>
<fields>
<field>date</field>
</fields>
<properties widgetMode="edit">
<property name="format">#{nxu:basicDateFormater()}</property>
<property name="required">true</property>
</properties>
</widget>
<widget name="sub1" type="text">
<labels>
<label mode="any">label.jenkins.duty.assignee</label>
</labels>
<translated>true</translated>
<fields>
<field>assignee</field>
</fields>
<properties widgetMode="edit">
<property name="required">true</property>
</properties>
</widget>
</subWidgets>
</widget>
</layout>
<layout name="layout@JenkinsReportsContainer-view">
<templates>
<template mode="any">/layouts/nuxeo-jenkins-report_layout_template.xhtml</template>
</templates>
<rows>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>list</widget>
</row>
</rows>
<widget name="list" type="list">
<labels>
<label mode="any">label.jenkins.duty_planning</label>
</labels>
<helpLabels>
<label mode="any">label.jenkins.duty_planning.help</label>
</helpLabels>
<translated>true</translated>
<fields>
<field>jenkinsreports:duty_planning</field>
</fields>
<properties widgetMode="edit">
<property name="orderable">true</property>
<property name="display">table</property>
<property name="hideSubLabels">false</property>
</properties>
<properties widgetMode="view">
<property name="display">table</property>
<property name="hideSubLabels">false</property>
</properties>
<subWidgets>
<widget name="sub0" type="datetime">
<labels>
<label mode="any">label.jenkins.duty.date</label>
</labels>
<translated>true</translated>
<fields>
<field>date</field>
</fields>
<properties widgetMode="edit">
<property name="format">#{nxu:basicDateFormater()}</property>
<property name="required">true</property>
</properties>
</widget>
<widget name="sub1" type="text">
<labels>
<label mode="any">label.jenkins.duty.assignee</label>
</labels>
<translated>true</translated>
<fields>
<field>assignee</field>
</fields>
<properties widgetMode="edit">
<property name="required">true</property>
</properties>
</widget>
</subWidgets>
</widget>
</layout>
<layout name="JenkinsReports@cvListingLayout">
<templates>
<template mode="any">/layouts/layout_listing_ajax_template.xhtml</template>
<template mode="edit_columns">/layouts/layout_column_selection_template.xhtml</template>
<template mode="edit_sort_infos">/layouts/layout_sort_infos_template.xhtml</template>
<template mode="edit_sort_infos_map">/layouts/layout_sort_infos_template.xhtml</template>
<template mode="csv">/layouts/layout_listing_csv_template.xhtml</template>
<template mode="pdf">/layouts/layout_listing_pdf_template.xhtml</template>
</templates>
<properties mode="any">
<property name="showListingHeader">true</property>
<property name="showRowEvenOddClass">true</property>
</properties>
<properties mode="edit_columns">
<property name="availableElementsLabel">label.selection.availableColumns</property>
<property name="selectedElementsLabel">label.selection.selectedColumns</property>
<property name="selectedElementsHelp"></property>
<property name="selectSize">10</property>
<property name="displayAlwaysSelectedColumns">false</property>
</properties>
<properties mode="edit_sort_infos">
<property name="newSortInfoTemplate">#{documentSearchActions.newSortInfo}</property>
<property name="required">false</property>
</properties>
<properties mode="edit_sort_infos">
<property name="newSortInfoTemplate">#{documentSearchActions.newSortInfoMap}</property>
<property name="required">false</property>
</properties>
<columns>
<column name="selection" alwaysSelected="true">
<properties mode="any">
<property name="isListingSelectionBox">true</property>
<property name="useFirstWidgetLabelAsColumnHeader">false</property>
<property name="columnStyleClass">iconColumn</property>
</properties>
<properties mode="csv">
<property name="isHidden">true</property>
</properties>
<properties mode="pdf">
<property name="isHidden">true</property>
</properties>
<widget>listing_ajax_selection_box</widget>
</column>
<column name="listing_title_link">
<properties mode="any">
<property name="useFirstWidgetLabelAsColumnHeader">true</property>
<property name="columnStyleClass"></property>
<property name="label">label.title</property>
<property name="sortPropertyName">dc:title</property>
</properties>
<properties mode="edit_sort_infos">
<property name="showInSortInfoSelection">true</property>
</properties>
<properties mode="edit_sort_infos_map">
<property name="showInSortInfoSelection">true</property>
</properties>
<widget>listing_title_link</widget>
</column>
<column name="report_date">
<properties mode="any">
<property name="useFirstWidgetLabelAsColumnHeader">true</property>
<property name="columnStyleClass"></property>
<property name="label">label.jenkins.report_date</property>
<property name="sortPropertyName">jenkinsreport:report_date</property>
</properties>
<properties mode="edit_sort_infos">
<property name="showInSortInfoSelection">true</property>
</properties>
<properties mode="edit_sort_infos_map">
<property name="showInSortInfoSelection">true</property>
</properties>
<widget>report_date</widget>
</column>
<column name="reporter">
<properties mode="any">
<property name="useFirstWidgetLabelAsColumnHeader">true</property>
<property name="columnStyleClass"></property>
<property name="label">label.jenkins.reporter</property>
<property name="sortPropertyName">jenkinsreport:reporter</property>
</properties>
<properties mode="edit_sort_infos">
<property name="showInSortInfoSelection">true</property>
</properties>
<properties mode="edit_sort_infos_map">
<property name="showInSortInfoSelection">true</property>
</properties>
<widget>reporter</widget>
</column>
<column name="report_trend">
<properties mode="any">
<property name="useFirstWidgetLabelAsColumnHeader">true</property>
<property name="columnStyleClass"></property>
<property name="label">label.jenkins.reporttrend</property>
<property name="sortPropertyName">jenkinsreport:report_trend</property>
</properties>
<properties mode="edit_sort_infos">
<property name="showInSortInfoSelection">true</property>
</properties>
<properties mode="edit_sort_infos_map">
<property name="showInSortInfoSelection">true</property>
</properties>
<widget>report_trend</widget>
</column>
<column name="template">
<properties mode="any">
<property name="useFirstWidgetLabelAsColumnHeader">true</property>
<property name="columnStyleClass"></property>
<property name="label">label.jenkins.failing_jobs</property>
<property name="sortPropertyName">jenkinsreport:number_failed</property>
</properties>
<properties mode="edit_sort_infos">
<property name="showInSortInfoSelection">true</property>
</properties>
<properties mode="edit_sort_infos_map">
<property name="showInSortInfoSelection">true</property>
</properties>
<widget>template</widget>
</column>
<column name="template_1">
<properties mode="any">
<property name="useFirstWidgetLabelAsColumnHeader">true</property>
<property name="columnStyleClass"></property>
<property name="label">label.jenkins.unclaimed_jobs</property>
<property name="sortPropertyName">jenkinsreport:number_unclaimed</property>
</properties>
<properties mode="edit_sort_infos">
<property name="showInSortInfoSelection">true</property>
</properties>
<properties mode="edit_sort_infos_map">
<property name="showInSortInfoSelection">true</property>
</properties>
<widget>template_1</widget>
</column>
<column name="nxl_unknown_col" selectedByDefault="false">
<properties mode="any">
<property name="useFirstWidgetLabelAsColumnHeader">true</property>
<property name="columnStyleClass"></property>
<property name="label"></property>
<property name="sortPropertyName"></property>
</properties>
<properties mode="edit_sort_infos">
<property name="showInSortInfoSelection">true</property>
</properties>
<properties mode="edit_sort_infos_map">
<property name="showInSortInfoSelection">true</property>
</properties>
</column>
<column name="nxl_unknown_col_1" selectedByDefault="false">
<properties mode="any">
<property name="useFirstWidgetLabelAsColumnHeader">true</property>
<property name="columnStyleClass"></property>
<property name="label"></property>
<property name="sortPropertyName"></property>
</properties>
<properties mode="edit_sort_infos">
<property name="showInSortInfoSelection">true</property>
</properties>
<properties mode="edit_sort_infos_map">
<property name="showInSortInfoSelection">true</property>
</properties>
</column>
<column name="nxl_unknown_col_2" selectedByDefault="false">
<properties mode="any">
<property name="useFirstWidgetLabelAsColumnHeader">true</property>
<property name="columnStyleClass"></property>
<property name="label"></property>
<property name="sortPropertyName"></property>
</properties>
<properties mode="edit_sort_infos">
<property name="showInSortInfoSelection">true</property>
</properties>
<properties mode="edit_sort_infos_map">
<property name="showInSortInfoSelection">true</property>
</properties>
</column>
<column name="nxl_unknown_col_3" selectedByDefault="false">
<properties mode="any">
<property name="useFirstWidgetLabelAsColumnHeader">true</property>
<property name="columnStyleClass"></property>
<property name="label"></property>
<property name="sortPropertyName"></property>
</properties>
<properties mode="edit_sort_infos">
<property name="showInSortInfoSelection">true</property>
</properties>
<properties mode="edit_sort_infos_map">
<property name="showInSortInfoSelection">true</property>
</properties>
</column>
<column name="nxl_unknown_col_4" selectedByDefault="false">
<properties mode="any">
<property name="useFirstWidgetLabelAsColumnHeader">true</property>
<property name="columnStyleClass"></property>
<property name="label"></property>
<property name="sortPropertyName"></property>
</properties>
<properties mode="edit_sort_infos">
<property name="showInSortInfoSelection">true</property>
</properties>
<properties mode="edit_sort_infos_map">
<property name="showInSortInfoSelection">true</property>
</properties>
</column>
</columns>
<widget name="listing_title_link" type="listing_title_link">
<labels>
<label mode="any">label.title</label>
</labels>
<translated>true</translated>
<fields>
<field>data</field>
<field>data.ref</field>
<field>data.dc.description</field>
<field>data.file.content</field>
<field>data.file.content.filename</field>
</fields>
</widget>
<widget name="report_date" type="datetime">
<labels>
<label mode="any">label.jenkins.report_date</label>
</labels>
<translated>true</translated>
<fields>
<field>data['jenkinsreport']['report_date']</field>
</fields>
<properties widgetMode="view">
<property name="pattern">#{nxu:basicDateFormater()}</property>
</properties>
<properties mode="any">
<property name="pattern">#{nxu:basicDateFormater()}</property>
</properties>
</widget>
<widget name="reporter" type="text">
<labels>
<label mode="any">label.jenkins.reporter</label>
</labels>
<translated>true</translated>
<fields>
<field>data['jenkinsreport']['reporter']</field>
</fields>
</widget>
<widget name="report_trend" type="template">
<labels>
<label mode="any">label.jenkins.reporttrend</label>
</labels>
<translated>true</translated>
<fields>
<field>data['jenkinsreport']['report_trend']</field>
</fields>
<properties widgetMode="view">
<property name="template">/widgets/jenkins_report_trend_widget_template.xhtml</property>
</properties>
<properties mode="any">
<property name="template">/widgets/jenkins_report_trend_widget_template.xhtml</property>
</properties>
</widget>
<widget name="template" type="template">
<labels>
<label mode="any">label.jenkins.failing_jobs</label>
</labels>
<translated>true</translated>
<fields>
<field>data.jenkinsreport.previous_number_failed</field>
<field>data.jenkinsreport.number_failed</field>
</fields>
<properties widgetMode="view">
<property name="template">/widgets/jenkins_trend_widget_template.xhtml</property>
</properties>
<properties mode="any">
<property name="template">/widgets/jenkins_trend_widget_template.xhtml</property>
</properties>
</widget>
<widget name="template_1" type="template">
<labels>
<label mode="any">label.jenkins.unclaimed_jobs</label>
</labels>
<translated>true</translated>
<fields>
<field>data.jenkinsreport.previous_number_unclaimed</field>
<field>data.jenkinsreport.number_unclaimed</field>
</fields>
<properties widgetMode="view">
<property name="template">/widgets/jenkins_trend_widget_template.xhtml</property>
</properties>
<properties mode="any">
<property name="template">/widgets/jenkins_trend_widget_template.xhtml</property>
</properties>
</widget>
</layout>
<layout name="JenkinsDutyComments@create">
<templates>
<template mode="any">/layouts/nuxeo-jenkins-report_layout_template.xhtml</template>
</templates>
<rows>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>description</widget>
</row>
</rows>
<widget name="description" type="htmltext">
<labels>
<label mode="any">label.jenkins.duty_comments</label>
</labels>
<translated>true</translated>
<fields>
<field>dc:description</field>
</fields>
</widget>
</layout>
<layout name="JenkinsDutyComments@edit">
<templates>
<template mode="any">/layouts/nuxeo-jenkins-report_layout_template.xhtml</template>
</templates>
<rows>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>description</widget>
</row>
</rows>
<widget name="description" type="htmltext">
<labels>
<label mode="any">label.jenkins.duty_comments</label>
</labels>
<translated>true</translated>
<fields>
<field>dc:description</field>
</fields>
</widget>
</layout>
<layout name="JenkinsDutyComments@view">
<templates>
<template mode="any">/layouts/nuxeo-jenkins-report_layout_template.xhtml</template>
</templates>
<rows>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>description</widget>
</row>
</rows>
<widget name="description" type="htmltext">
<labels>
<label mode="any">label.jenkins.duty_comments</label>
</labels>
<translated>true</translated>
<fields>
<field>dc:description</field>
</fields>
<widgetModes>
<mode value="view">#{empty layoutValue.dc.description? 'hidden':'view'}</mode>
</widgetModes>
<properties widgetMode="view">
<property name="styleClass">bubbleBox</property>
</properties>
</widget>
</layout>
<layout name="JenkinsDutyPlanning@create">
<templates>
<template mode="any">/layouts/nuxeo-jenkins-report_layout_template.xhtml</template>
</templates>
<rows>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget/>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget/>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget/>
</row>
</rows>
</layout>
<layout name="JenkinsDutyPlanning@edit">
<templates>
<template mode="any">/layouts/nuxeo-jenkins-report_layout_template.xhtml</template>
</templates>
<rows>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>list</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget/>
</row>
</rows>
<widget name="list" type="list">
<labels>
<label mode="any">Generic</label>
</labels>
<translated>false</translated>
<fields>
<field>jenkinsreports:duty_planning</field>
</fields>
<properties widgetMode="edit">
<property name="orderable">true</property>
<property name="display">table</property>
</properties>
<subWidgets>
<widget name="sub0" type="datetime">
<labels>
<label mode="any">Date</label>
</labels>
<helpLabels>
<label mode="any">Date of the first day of week duty</label>
</helpLabels>
<translated>false</translated>
<fields>
<field>date</field>
</fields>
<properties widgetMode="edit">
<property name="format">#{nxu:basicDateFormater()}</property>
<property name="required">true</property>
</properties>
<properties widgetMode="view">
<property name="pattern">#{nxu:basicDateFormater()}</property>
</properties>
</widget>
<widget name="sub1" type="text">
<labels>
<label mode="any">Assignee</label>
</labels>
<translated>false</translated>
<fields>
<field>assignee</field>
</fields>
<properties widgetMode="edit">
<property name="required">true</property>
</properties>
</widget>
</subWidgets>
</widget>
</layout>
<layout name="JenkinsDutyPlanning@view">
<templates>
<template mode="any">/layouts/nuxeo-jenkins-report_layout_template.xhtml</template>
</templates>
<rows>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>list</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget/>
</row>
</rows>
<widget name="list" type="list">
<labels>
<label mode="any">Generic</label>
</labels>
<translated>false</translated>
<fields>
<field>jenkinsreports:duty_planning</field>
</fields>
<properties widgetMode="view">
<property name="display">table</property>
</properties>
<subWidgets>
<widget name="sub0" type="datetime">
<labels>
<label mode="any">Date</label>
</labels>
<helpLabels>
<label mode="any">Date of the first day of week duty</label>
</helpLabels>
<translated>false</translated>
<fields>
<field>date</field>
</fields>
<properties widgetMode="view">
<property name="pattern">#{nxu:basicDateFormater()}</property>
</properties>
</widget>
<widget name="sub1" type="text">
<labels>
<label mode="any">Assignee</label>
</labels>
<translated>false</translated>
<fields>
<field>assignee</field>
</fields>
</widget>
</subWidgets>
</widget>
</layout>
<layout name="JenkinsReport@create">
<templates>
<template mode="any">/layouts/nuxeo-jenkins-report_layout_template.xhtml</template>
</templates>
<rows>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>text</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>title</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>reporter</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>report_date</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>previous_number_failed</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>previous_number_unclaimed</widget>
</row>
</rows>
<widget name="text" type="text">
<labels>
<label mode="any">help message</label>
</labels>
<translated>false</translated>
<fields>
<field>#{messages['label.jenkins.helpDoc']}</field>
</fields>
<widgetModes>
<mode value="create">view</mode>
</widgetModes>
<properties widgetMode="view">
<property name="styleClass">tips</property>
<property name="escape">false</property>
</properties>
<controls mode="any">
<control name="handleLabels">true</control>
</controls>
</widget>
<widget name="title" type="text">
<labels>
<label mode="any">label.title</label>
</labels>
<translated>true</translated>
<fields>
<field>dc:title</field>
</fields>
<properties widgetMode="edit">
<property name="styleClass">dataInputText</property>
<property name="required">true</property>
</properties>
</widget>
<widget name="reporter" type="singleUserSuggestion">
<labels>
<label mode="any">label.jenkins.reporter</label>
</labels>
<translated>true</translated>
<fields>
<field>jenkinsreport:reporter</field>
</fields>
<properties widgetMode="edit">
<property name="required">true</property>
</properties>
</widget>
<widget name="report_date" type="datetime">
<labels>
<label mode="any">label.jenkins.report_date</label>
</labels>
<translated>true</translated>
<fields>
<field>jenkinsreport:report_date</field>
</fields>
<properties widgetMode="edit">
<property name="showsTime">true</property>
<property name="format">#{nxu:basicDateAndTimeFormater()}</property>
<property name="required">true</property>
</properties>
</widget>
<widget name="previous_number_failed" type="int">
<labels>
<label mode="any">label.jenkins.previous_number_failing_jobs</label>
</labels>
<helpLabels>
<label mode="any">label.jenkins.previous_number_failing_jobs.help</label>
</helpLabels>
<translated>true</translated>
<fields>
<field>jenkinsreport:previous_number_failed</field>
</fields>
<properties widgetMode="edit">
<property name="required">true</property>
<property name="size">5</property>
</properties>
</widget>
<widget name="previous_number_unclaimed" type="int">
<labels>
<label mode="any">label.jenkins.previous_number_unclaimed_jobs</label>
</labels>
<helpLabels>
<label mode="any">label.jenkins.previous_number_unclaimed_jobs.help</label>
</helpLabels>
<translated>true</translated>
<fields>
<field>jenkinsreport:previous_number_unclaimed</field>
</fields>
<properties widgetMode="edit">
<property name="required">true</property>
<property name="size">5</property>
</properties>
</widget>
</layout>
<layout name="JenkinsReport@edit">
<templates>
<template mode="any">/layouts/nuxeo-jenkins-report_layout_template.xhtml</template>
</templates>
<rows>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>text</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>title</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>reporter</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>report_date</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>previous_number_failed</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>previous_number_unclaimed</widget>
</row>
</rows>
<widget name="text" type="text">
<labels>
<label mode="any">help message</label>
</labels>
<translated>false</translated>
<fields>
<field>#{messages['label.jenkins.helpDoc']}</field>
</fields>
<widgetModes>
<mode value="edit">view</mode>
</widgetModes>
<properties widgetMode="view">
<property name="styleClass">tips</property>
<property name="escape">false</property>
</properties>
<controls mode="any">
<control name="handleLabels">true</control>
</controls>
</widget>
<widget name="title" type="text">
<labels>
<label mode="any">label.title</label>
</labels>
<translated>true</translated>
<fields>
<field>dc:title</field>
</fields>
<properties widgetMode="edit">
<property name="styleClass">dataInputText</property>
<property name="required">true</property>
</properties>
</widget>
<widget name="reporter" type="singleUserSuggestion">
<labels>
<label mode="any">label.jenkins.reporter</label>
</labels>
<translated>true</translated>
<fields>
<field>jenkinsreport:reporter</field>
</fields>
<properties widgetMode="edit">
<property name="required">true</property>
</properties>
</widget>
<widget name="report_date" type="datetime">
<labels>
<label mode="any">label.jenkins.report_date</label>
</labels>
<translated>true</translated>
<fields>
<field>jenkinsreport:report_date</field>
</fields>
<properties widgetMode="edit">
<property name="showsTime">true</property>
<property name="format">#{nxu:basicDateAndTimeFormater()}</property>
<property name="required">true</property>
</properties>
</widget>
<widget name="previous_number_failed" type="int">
<labels>
<label mode="any">label.jenkins.previous_number_failing_jobs</label>
</labels>
<helpLabels>
<label mode="any">label.jenkins.previous_number_failing_jobs.help</label>
</helpLabels>
<translated>true</translated>
<fields>
<field>jenkinsreport:previous_number_failed</field>
</fields>
<properties widgetMode="edit">
<property name="required">true</property>
<property name="size">5</property>
</properties>
</widget>
<widget name="previous_number_unclaimed" type="int">
<labels>
<label mode="any">label.jenkins.previous_number_unclaimed_jobs</label>
</labels>
<helpLabels>
<label mode="any">label.jenkins.previous_number_unclaimed_jobs.help</label>
</helpLabels>
<translated>true</translated>
<fields>
<field>jenkinsreport:previous_number_unclaimed</field>
</fields>
<properties widgetMode="edit">
<property name="required">true</property>
<property name="size">5</property>
</properties>
</widget>
</layout>
<layout name="JenkinsReport@view">
<templates>
<template mode="any">/layouts/nuxeo-jenkins-report_layout_template.xhtml</template>
</templates>
<rows>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
<property name="nxl_colspan_1">1</property>
</properties>
<widget>reporter</widget>
<widget>report_date</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
<property name="nxl_colspan_1">1</property>
</properties>
<widget>report_trend</widget>
<widget/>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
<property name="nxl_colspan_1">1</property>
</properties>
<widget>template</widget>
<widget>template_1</widget>
</row>
</rows>
<widget name="reporter" type="text">
<labels>
<label mode="any">label.jenkins.reporter</label>
</labels>
<translated>true</translated>
<fields>
<field>jenkinsreport:reporter</field>
</fields>
</widget>
<widget name="report_date" type="datetime">
<labels>
<label mode="any">label.jenkins.report_date</label>
</labels>
<translated>true</translated>
<fields>
<field>jenkinsreport:report_date</field>
</fields>
<properties widgetMode="view">
<property name="pattern">#{nxu:basicDateAndTimeFormater()}</property>
</properties>
</widget>
<widget name="report_trend" type="template">
<labels>
<label mode="any">label.jenkins.reporttrend</label>
</labels>
<translated>true</translated>
<fields>
<field>jenkinsreport:report_trend</field>
</fields>
<properties widgetMode="view">
<property name="template">/widgets/jenkins_report_trend_widget_template.xhtml</property>
</properties>
</widget>
<widget name="template" type="template">
<labels>
<label mode="any">label.jenkins.trend</label>
</labels>
<translated>true</translated>
<fields>
<field>jenkinsreport.previous_number_failed</field>
<field>jenkinsreport.number_failed</field>
</fields>
<properties widgetMode="view">
<property name="template">/widgets/jenkins_trend_widget_template.xhtml</property>
</properties>
<subWidgets/>
</widget>
<widget name="template_1" type="template">
<labels>
<label mode="any">label.jenkins.unclaimed_trend</label>
</labels>
<helpLabels>
<label mode="any">label.jenkins.unclaimed_trend.help</label>
</helpLabels>
<translated>true</translated>
<fields>
<field>jenkinsreport.previous_number_unclaimed</field>
<field>jenkinsreport.number_unclaimed</field>
</fields>
<properties widgetMode="view">
<property name="template">/widgets/jenkins_trend_widget_template.xhtml</property>
</properties>
</widget>
</layout>
<layout name="JenkinsReportJobs@create">
<templates>
<template mode="any">/layouts/nuxeo-jenkins-report_layout_template.xhtml</template>
</templates>
<rows>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>template</widget>
</row>
</rows>
<widget name="template" type="template">
<labels>
<label mode="any">label.jenkins.unstable_jobs</label>
</labels>
<translated>true</translated>
<fields>
<field>jenkinsreport:unstable_jobs</field>
<field>jenkinsreport:last_update_feedback</field>
</fields>
<properties widgetMode="edit">
<property name="template">/widgets/jenkins_jobs_list_widget_template.xhtml</property>
<property name="orderable">true</property>
<property name="jenkinsClaimURL">#{currentSuperSpace.jenkinsreports.claim_url}</property>
<property name="jenkinsURL">#{currentSuperSpace.jenkinsreports.view_url}</property>
</properties>
<subWidgets>
<widget name="sub0" type="template">
<labels>
<label mode="any">label.jenkins.status</label>
</labels>
<translated>true</translated>
<fields>
<field>type</field>
</fields>
<properties widgetMode="edit">
<property name="template">/widgets/jenkins_failure_type_widget_template.xhtml</property>
<property name="required">true</property>
</properties>
</widget>
<widget name="sub1" type="template">
<labels>
<label mode="any">label.jenkins.updated_status</label>
</labels>
<translated>true</translated>
<fields>
<field>updated_type</field>
</fields>
<properties widgetMode="edit">
<property name="template">/widgets/jenkins_failure_type_widget_template.xhtml</property>
</properties>
</widget>
<widget name="sub2" type="text">
<labels>
<label mode="any">label.jenkins.job_id</label>
</labels>
<translated>true</translated>
<fields>
<field>job_id</field>
</fields>
<properties widgetMode="edit">
<property name="required">true</property>
<property name="size">70</property>
</properties>
</widget>
<widget name="sub3" type="template">
<labels>
<label mode="any">label.jenkins.job_url</label>
</labels>
<translated>true</translated>
<fields>
<field>job_id</field>
<field>job_url</field>
</fields>
<properties widgetMode="edit">
<property name="template">/widgets/jenkins_job_link_widget_template.xhtml</property>
<property name="required">true</property>
<property name="size">70</property>
</properties>
</widget>
<widget name="sub4" type="int">
<labels>
<label mode="any">label.jenkins.build_number</label>
</labels>
<translated>true</translated>
<fields>
<field>build_number</field>
</fields>
<properties widgetMode="edit">
<property name="size">5</property>
</properties>
</widget>
<widget name="sub5" type="int">
<labels>
<label mode="any">label.jenkins.updated_build_number</label>
</labels>
<translated>true</translated>
<fields>
<field>updated_build_number</field>
</fields>
<properties widgetMode="edit">
<property name="size">5</property>
</properties>
</widget>
<widget name="sub6" type="text">
<labels>
<label mode="any">label.jenkins.claimer</label>
</labels>
<translated>true</translated>
<fields>
<field>claimer</field>
</fields>
<widgetModes>
<mode value="any">view</mode>
</widgetModes>
</widget>
<widget name="sub7" type="list">
<labels>
<label mode="any">label.jenkins.culprits</label>
</labels>
<translated>true</translated>
<fields>
<field>culprits</field>
</fields>
<widgetModes>
<mode value="any">view</mode>
</widgetModes>
<properties widgetMode="view">
<property name="hideSubLabels">true</property>
</properties>
<subWidgets>
<widget name="sub0" type="text">
<labels>
<label mode="any">Culprit</label>
</labels>
<translated>false</translated>
<fields>
<field></field>
</fields>
<properties widgetMode="edit">
<property name="required">true</property>
</properties>
</widget>
</subWidgets>
</widget>
<widget name="sub8" type="textarea">
<labels>
<label mode="any">label.jenkins.comment</label>
</labels>
<translated>true</translated>
<fields>
<field>comment</field>
</fields>
<widgetModes>
<mode value="any">view</mode>
</widgetModes>
</widget>
<widget name="sub9" type="textarea">
<labels>
<label mode="any">label.jenkins.updated_comment</label>
</labels>
<translated>true</translated>
<fields>
<field>updated_comment</field>
</fields>
<widgetModes>
<mode value="any">view</mode>
</widgetModes>
</widget>
<widget name="sub10" type="checkbox">
<labels>
<label mode="any">label.jenkins.newly_failing</label>
</labels>
<helpLabels>
<label mode="any">label.jenkins.newly_failing.help</label>
</helpLabels>
<translated>true</translated>
<fields>
<field>newly_failing</field>
</fields>
</widget>
</subWidgets>
</widget>
</layout>
<layout name="JenkinsReportJobs@edit">
<templates>
<template mode="any">/layouts/nuxeo-jenkins-report_layout_template.xhtml</template>
</templates>
<rows>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>template</widget>
</row>
</rows>
<widget name="template" type="template">
<labels>
<label mode="any">label.jenkins.unstable_jobs</label>
</labels>
<translated>true</translated>
<fields>
<field>jenkinsreport:unstable_jobs</field>
<field>jenkinsreport:last_update_feedback</field>
</fields>
<properties widgetMode="edit">
<property name="template">/widgets/jenkins_jobs_list_widget_template.xhtml</property>
<property name="orderable">true</property>
<property name="jenkinsClaimURL">#{currentSuperSpace.jenkinsreports.claim_url}</property>
<property name="jenkinsURL">#{currentSuperSpace.jenkinsreports.view_url}</property>
</properties>
<subWidgets>
<widget name="sub0" type="template">
<labels>
<label mode="any">label.jenkins.status</label>
</labels>
<translated>true</translated>
<fields>
<field>type</field>
</fields>
<properties widgetMode="edit">
<property name="template">/widgets/jenkins_failure_type_widget_template.xhtml</property>
<property name="required">true</property>
</properties>
</widget>
<widget name="sub1" type="template">
<labels>
<label mode="any">label.jenkins.updated_status</label>
</labels>
<translated>true</translated>
<fields>
<field>updated_type</field>
</fields>
<properties widgetMode="edit">
<property name="template">/widgets/jenkins_failure_type_widget_template.xhtml</property>
</properties>
</widget>
<widget name="sub2" type="text">
<labels>
<label mode="any">label.jenkins.job_id</label>
</labels>
<translated>true</translated>
<fields>
<field>job_id</field>
</fields>
<properties widgetMode="edit">
<property name="required">true</property>
<property name="size">70</property>
</properties>
</widget>
<widget name="sub3" type="template">
<labels>
<label mode="any">label.jenkins.job_url</label>
</labels>
<translated>true</translated>
<fields>
<field>job_id</field>
<field>job_url</field>
</fields>
<properties widgetMode="edit">
<property name="template">/widgets/jenkins_job_link_widget_template.xhtml</property>
<property name="required">true</property>
<property name="size">70</property>
</properties>
</widget>
<widget name="sub4" type="int">
<labels>
<label mode="any">label.jenkins.build_number</label>
</labels>
<translated>true</translated>
<fields>
<field>build_number</field>
</fields>
<properties widgetMode="edit">
<property name="size">5</property>
</properties>
</widget>
<widget name="sub5" type="int">
<labels>
<label mode="any">label.jenkins.updated_build_number</label>
</labels>
<translated>true</translated>
<fields>
<field>updated_build_number</field>
</fields>
<properties widgetMode="edit">
<property name="size">5</property>
</properties>
</widget>
<widget name="sub6" type="text">
<labels>
<label mode="any">label.jenkins.claimer</label>
</labels>
<translated>true</translated>
<fields>
<field>claimer</field>
</fields>
<widgetModes>
<mode value="any">view</mode>
</widgetModes>
</widget>
<widget name="sub7" type="list">
<labels>
<label mode="any">label.jenkins.culprits</label>
</labels>
<translated>true</translated>
<fields>
<field>culprits</field>
</fields>
<widgetModes>
<mode value="any">view</mode>
</widgetModes>
<properties widgetMode="view">
<property name="hideSubLabels">true</property>
</properties>
<subWidgets>
<widget name="sub0" type="text">
<labels>
<label mode="any">Culprit</label>
</labels>
<translated>false</translated>
<fields>
<field></field>
</fields>
<properties widgetMode="edit">
<property name="required">true</property>
</properties>
</widget>
</subWidgets>
</widget>
<widget name="sub8" type="textarea">
<labels>
<label mode="any">label.jenkins.comment</label>
</labels>
<translated>true</translated>
<fields>
<field>comment</field>
</fields>
<widgetModes>
<mode value="any">view</mode>
</widgetModes>
</widget>
<widget name="sub9" type="textarea">
<labels>
<label mode="any">label.jenkins.updated_comment</label>
</labels>
<translated>true</translated>
<fields>
<field>updated_comment</field>
</fields>
<widgetModes>
<mode value="any">view</mode>
</widgetModes>
</widget>
<widget name="sub10" type="checkbox">
<labels>
<label mode="any">label.jenkins.newly_failing</label>
</labels>
<helpLabels>
<label mode="any">label.jenkins.newly_failing.help</label>
</helpLabels>
<translated>true</translated>
<fields>
<field>newly_failing</field>
</fields>
</widget>
</subWidgets>
</widget>
</layout>
<layout name="JenkinsReportJobs@view">
<templates>
<template mode="any">/layouts/nuxeo-jenkins-report_layout_template.xhtml</template>
</templates>
<rows>
<row>
<properties mode="any">
<property name="nxl_colspan_0">1</property>
</properties>
<widget>text</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_colspan_0">2</property>
</properties>
<widget>template</widget>
</row>
</rows>
<widget name="text" type="text">
<labels>
<label mode="any">help message</label>
</labels>
<translated>false</translated>
<fields>
<field>#{messages['label.jenkins.helpDoc']}</field>
</fields>
<properties widgetMode="view">
<property name="styleClass">tips</property>
<property name="escape">false</property>
</properties>
<controls mode="any">
<control name="handleLabels">true</control>
</controls>
</widget>
<widget name="template" type="template">
<labels>
<label mode="any">label.jenkins.unstable_jobs</label>
</labels>
<translated>true</translated>
<fields>
<field>jenkinsreport:unstable_jobs</field>
<field>jenkinsreport:last_update_feedback</field>
</fields>
<properties widgetMode="view">
<property name="template">/widgets/jenkins_jobs_list_widget_template.xhtml</property>
<property name="jenkinsClaimURL">#{currentSuperSpace.jenkinsreports.claim_url}</property>
<property name="display">table</property>
<property name="jenkinsURL">#{currentSuperSpace.jenkinsreports.view_url}</property>
</properties>
<subWidgets>
<widget name="sub0" type="template">
<labels>
<label mode="any">label.jenkins.status</label>
</labels>
<translated>true</translated>
<fields>
<field>type</field>
<field>updated_type</field>
<field>newly_failing</field>
</fields>
<properties widgetMode="view">
<property name="template">/widgets/jenkins_failure_type_widget_template.xhtml</property>
</properties>
</widget>
<widget name="sub1" type="template">
<labels>
<label mode="any">label.jenkins.link</label>
</labels>
<translated>true</translated>
<fields>
<field>job_id</field>
<field>job_url</field>
<field>build_number</field>
<field>updated_build_number</field>
</fields>
<properties widgetMode="view">
<property name="template">/widgets/jenkins_job_link_widget_template.xhtml</property>
</properties>
<subWidgets/>
</widget>
<widget name="sub2" type="text">
<labels>
<label mode="any">label.jenkins.claimer</label>
</labels>
<translated>true</translated>
<fields>
<field>claimer</field>
</fields>
</widget>
<widget name="sub3" type="complex">
<labels>
<label mode="any">label.jenkins.details</label>
</labels>
<translated>true</translated>
<fields/>
<properties widgetMode="view">
<property name="styleClass">jenkinsComment</property>
</properties>
<subWidgets>
<widget name="sub0" type="template">
<labels>
<label mode="any">label.jenkins.comment</label>
</labels>
<translated>true</translated>
<fields>
<field>comment</field>
</fields>
<properties widgetMode="view">
<property name="template">/widgets/jenkins_job_comment_widget_template.xhtml</property>
<property name="jiraProjects">#{currentSuperSpace.jenkinsreports.jira_projects}</property>
<property name="jiraURL">#{currentSuperSpace.jenkinsreports.jira_url}</property>
</properties>
</widget>
<widget name="sub1" type="template">
<labels>
<label mode="any">label.jenkins.updated_comment</label>
</labels>
<translated>true</translated>
<fields>
<field>updated_comment</field>
</fields>
<properties widgetMode="view">
<property name="template">/widgets/jenkins_job_comment_widget_template.xhtml</property>
<property name="jiraProjects">#{currentSuperSpace.jenkinsreports.jira_projects}</property>
<property name="jiraURL">#{currentSuperSpace.jenkinsreports.jira_url}</property>
</properties>
</widget>
<widget name="sub2" type="list">
<labels>
<label mode="any">label.jenkins.culprits</label>
</labels>
<translated>true</translated>
<fields>
<field>culprits</field>
</fields>
<properties widgetMode="view">
<property name="hideSubLabels">true</property>
</properties>
<subWidgets>
<widget name="sub0" type="text">
<labels>
<label mode="any">Culprit</label>
</labels>
<translated>false</translated>
<fields>
<field></field>
</fields>
</widget>
</subWidgets>
</widget>
</subWidgets>
</widget>
</subWidgets>
</widget>
</layout>
<layout name="JenkinsReportContainerSummary@tabLayout">
<templates>
<template mode="any">/layouts/studio_tab_layout_template.xhtml</template>
</templates>
<rows>
<row>
<properties mode="any">
<property name="nxl_gridStyleClass_0">gridStyle12</property>
</properties>
<widget>container</widget>
</row>
<row>
<properties mode="any">
<property name="nxl_gridStyleClass_0">gridStyle9</property>
<property name="nxl_gridStyleClass_1">gridStyle3</property>
</properties>
<widget>container_1</widget>
<widget>container_2</widget>
</row>
</rows>
<widget name="container" type="container">
<labels>
<label mode="any"></label>
</labels>
<translated>false</translated>
<fields>
<field></field>
</fields>
<properties widgetMode="any">
<property name="hideSubLabels">true</property>
</properties>
<controls mode="any">
<control name="handleLabels">true</control>
</controls>
<subWidgets>
<widget name="sub0" type="template">
<labels>
<label mode="any">View Url</label>
</labels>
<translated>false</translated>
<fields>
<field>jenkinsreportscontainer:view_url</field>
<field>jenkinsreportscontainer:claim_url</field>
</fields>
<properties widgetMode="view">
<property name="template">/widgets/jenkins_url_widget_template.xhtml</property>
<property name="target">_blank</property>
</properties>
</widget>
<widget name="sub1" type="summary_current_document_custom_actions">
<labels>
<label mode="any"></label>
</labels>
<translated>false</translated>
<properties widgetMode="view">
<property name="category">SUBVIEW_UPPER_LIST</property>
<property name="display">buttons</property>
<property name="overallDisplay">horizontal_block</property>
</properties>
<controls mode="any">
<control name="requireSurroundingForm">true</control>
<control name="handleLabels">true</control>
</controls>
</widget>
</subWidgets>
</widget>
<widget name="container_1" type="container">
<labels>
<label mode="any">label.jenkins.past_reports</label>
</labels>
<translated>true</translated>
<fields>
<field></field>
</fields>
<properties widgetMode="view">
<property name="hideSubLabels">true</property>
</properties>
<controls mode="any">
<control name="handleLabels">true</control>
</controls>
<subWidgets>
<widget name="sub0" type="contentViewWithForms">
<labels>
<label mode="any">Past Reports</label>
</labels>
<translated>false</translated>
<properties widgetMode="view">
<property name="contentViewName">JenkinsReports</property>
</properties>
</widget>
</subWidgets>
</widget>
<widget name="container_2" type="container">
<labels>
<label mode="any">label.jenkins.duty_planning</label>
</labels>
<translated>true</translated>
<fields>
<field></field>
</fields>
<properties widgetMode="view">
<property name="hideSubLabels">true</property>
</properties>
<controls mode="any">
<control name="handleLabels">true</control>
</controls>
<subWidgets>
<widget name="sub0" type="toggleableLayoutWithForms">
<labels>
<label mode="any"></label>
</labels>
<translated>false</translated>
<fields>
<field></field>
</fields>
<properties widgetMode="view">
<property name="displayToggleActionInHeader">true</property>
<property name="widgetsDisplay">no_label</property>
<property name="initialLayoutName">#{layoutWidgetMode == 'edit'? 'JenkinsDutyPlanning@edit': (layoutWidgetMode == 'create'? 'JenkinsDutyPlanning@create': 'JenkinsDutyPlanning@view')}</property>
</properties>
</widget>
</subWidgets>
</widget>
</layout>
<layout name="JenkinsReportSummary@tabLayout">
<templates>
<template mode="any">/layouts/studio_tab_layout_template.xhtml</template>
</templates>
<rows>
<row>
<properties mode="any">
<property name="nxl_gridStyleClass_0">gridStyle12</property>
</properties>
<widget>container</widget>
</row>
</rows>
<widget name="container" type="container">
<labels>
<label mode="any"></label>
</labels>
<translated>false</translated>
<fields>
<field></field>
</fields>
<properties widgetMode="any">
<property name="hideSubLabels">true</property>
</properties>
<controls mode="any">
<control name="handleLabels">true</control>
</controls>
<subWidgets>
<widget name="sub0" type="container">
<labels>
<label mode="any">Jenkins report layout container</label>
</labels>
<translated>false</translated>
<fields/>
<properties widgetMode="view">
<property name="ajaxPanelId">reportMainProps</property>
<property name="hideSubLabels">true</property>
</properties>
<subWidgets>
<widget name="sub0" type="toggleableLayoutWithForms">
<labels>
<label mode="any">Jenkins report layout</label>
</labels>
<translated>false</translated>
<fields>
<field></field>
</fields>
<properties widgetMode="view">
<property name="widgetsDisplay">label_top</property>
<property name="canToggleMode">false</property>
<property name="initialLayoutName">#{layoutWidgetMode == 'edit'? 'JenkinsReport@edit': (layoutWidgetMode == 'create'? 'JenkinsReport@create': 'JenkinsReport@view')}</property>
</properties>
</widget>
</subWidgets>
</widget>
<widget name="sub1" type="toggleableLayoutWithForms">
<labels>
<label mode="any">label.jenkins.duty_comments</label>
</labels>
<translated>true</translated>
<fields>
<field></field>
</fields>
<properties widgetMode="view">
<property name="displayToggleActionInHeader">true</property>
<property name="useAjaxForm">true</property>
<property name="widgetsDisplay">no_label</property>
<property name="initialLayoutName">#{layoutWidgetMode == 'edit'? 'JenkinsDutyComments@edit': (layoutWidgetMode == 'create'? 'JenkinsDutyComments@create': 'JenkinsDutyComments@view')}</property>
</properties>
<controls mode="any">
<control name="handleLabels">true</control>
</controls>
</widget>
<widget name="sub2" type="toggleableLayoutWithForms">
<labels>
<label mode="any">label.jenkins.unstable_jobs</label>
</labels>
<translated>true</translated>
<fields>
<field></field>
</fields>
<properties widgetMode="view">
<property name="displayToggleActionInHeader">true</property>
<property name="toggledLayoutName"> JenkinsReportJobs@edit</property>
<property name="widgetsDisplay">no_label</property>
<property name="canToggleMode">false</property>
<property name="initialLayoutName">#{layoutWidgetMode == 'edit'? 'JenkinsReportJobs@edit': (layoutWidgetMode == 'create'? 'JenkinsReportJobs@create': 'JenkinsReportJobs@view')}</property>
</properties>
<controls mode="any">
<control name="handleLabels">true</control>
</controls>
</widget>
</subWidgets>
</widget>
</layout>
</extension>
<extension target="org.nuxeo.ecm.platform.ui.web.ContentViewService" point="contentViews">
<contentView name="JenkinsReports">
<coreQueryPageProvider>
<property name="coreSession">#{documentManager}</property>
<pattern>SELECT * FROM Document WHERE (ecm:mixinType != 'HiddenInNavigation' AND ecm:isCheckedInVersion = 0 AND ecm:currentLifeCycleState != 'deleted' AND ecm:parentId=?)</pattern>
<parameter>#{currentDocument.id}</parameter>
<sort column="jenkinsreport:report_date" ascending="false"/>
<pageSize>10</pageSize>
</coreQueryPageProvider>
<useGlobalPageSize>true</useGlobalPageSize>
<refresh>
<event>documentChanged</event>
<event>documentChildrenChanged</event>
</refresh>
<cacheKey>#{currentDocument.id}</cacheKey>
<cacheSize>10</cacheSize>
<selectionList>CURRENT_SELECTION</selectionList>
<showTitle>false</showTitle>
<showFilterForm>true</showFilterForm>
<showPageSizeSelector>true</showPageSizeSelector>
<showRefreshCommand>true</showRefreshCommand>
<actions category="CURRENT_SELECTION_LIST"/>
<actions category="cv_actions@JenkinsReports"/>
<resultLayouts>
<layout name="JenkinsReports@cvListingLayout" title="document_listing" translateTitle="true" iconPath="/icons/document_listing_icon.png" showCSVExport="true"/>
</resultLayouts>
</contentView>
</extension>
<extension target="org.nuxeo.ecm.core.operation.OperationServiceComponent" point="event-handlers">
<handler chainId="JenkinsReportCreation">
<event>emptyDocumentModelCreated</event>
<filters>
<doctype>JenkinsReport</doctype>
</filters>
</handler>
<handler chainId="JenkinsReportModified">
<event>aboutToCreate</event>
<event>beforeDocumentModification</event>
<filters>
<doctype>JenkinsReport</doctype>
</filters>
</handler>
<handler chainId="JenkinsReportsContainerCreation">
<event>emptyDocumentModelCreated</event>
<filters>
<doctype>JenkinsReportsContainer</doctype>
</filters>
</handler>
</extension>
<extension target="org.nuxeo.ecm.platform.ec.notification.service.NotificationService" point="templates">
<template name="JenkinsReportSendMail" src="data/templates/JenkinsReportSendMail.ftl"/>
</extension>
<extension target="org.nuxeo.ecm.core.operation.OperationServiceComponent" point="chains">
<chain id="JenkinsReportCreation">
<operation id="Context.FetchDocument"/>
<operation id="Document.SetProperty">
<param type="serializable" name="value">expr:CurrentUser.name</param>
<param type="string" name="xpath">jenkinsreport:reporter</param>
<param type="boolean" name="save">false</param>
</operation>
<operation id="Document.SetProperty">
<param type="serializable" name="value">expr:@{CurrentDate.year}/@{CurrentDate.format("MM")}/@{CurrentDate.format("dd")}</param>
<param type="string" name="xpath">dc:title</param>
<param type="boolean" name="save">false</param>
</operation>
<operation id="Document.SetProperty">
<param type="serializable" name="value">expr:CurrentDate.calendar</param>
<param type="string" name="xpath">jenkinsreport:report_date</param>
<param type="boolean" name="save">false</param>
</operation>
<operation id="Document.SetProperty">
<param type="serializable" name="value">0</param>
<param type="string" name="xpath">jenkinsreport:number_failed</param>
<param type="boolean" name="save">false</param>
</operation>
<operation id="Document.SetProperty">
<param type="serializable" name="value">0</param>
<param type="string" name="xpath">jenkinsreport:previous_number_failed</param>
<param type="boolean" name="save">false</param>
</operation>
<operation id="Document.SetProperty">
<param type="serializable" name="value">0</param>
<param type="string" name="xpath">jenkinsreport:previous_number_unclaimed</param>
<param type="boolean" name="save">false</param>
</operation>
</chain>
<chain id="JenkinsReportModified">
<operation id="Context.FetchDocument"/>
<operation id="Context.RunScript">
<param type="string" name="script">var jobs = Document["jenkinsreport:unstable_jobs"];
nbUnclaimed = 0;
foreach (job : jobs) {
if (job["claimer"] == empty and job["type"] != "SUCCESS" and job["updated_type"] != "SUCCESS") {
nbUnclaimed ++;
}
}
Document["jenkinsreport:number_unclaimed"] = nbUnclaimed;</param>
</operation>
<operation id="Context.RunScript">
<param type="string" name="script">var jobs = Document["jenkinsreport:unstable_jobs"];
nbFailing = 0;
foreach (job : jobs) {
if (job["type"] != "SUCCESS" and job["updated_type"] != "SUCCESS") {
nbFailing ++;
}
}
Document["jenkinsreport:number_failed"] = nbFailing;</param>
</operation>
<operation id="Context.RunScript">
<param type="string" name="script">var jobs = Document["jenkinsreport:unstable_jobs"];
nb = 0;
foreach (job : jobs) {
if (job["updated_type"] == "SUCCESS") {
nb --;
} else if (job["newly_failing"] == true) {
nb ++;
}
}
Document["jenkinsreport:report_trend"] = nb;</param>
</operation>
</chain>
<chain id="JenkinsReportSendMail">
<operation id="Context.FetchDocument"/>
<operation id="Document.Push"/>
<operation id="Document.GetParent"/>
<operation id="Context.SetVar">
<param type="string" name="name">jenkins_report_email</param>
<param type="object" name="value">expr:Document.getProperty("jenkinsreports:report_email")</param>
</operation>
<operation id="Context.SetVar">
<param type="string" name="name">jenkins_url</param>
<param type="object" name="value">expr:Document.getProperty("jenkinsreports:view_url")</param>
</operation>
<operation id="Document.Pull"/>
<operation id="Notification.SendMail">
<param type="string" name="from">expr:CurrentUser.email</param>
<param type="string" name="message">template:JenkinsReportSendMail</param>
<param type="string" name="subject">expr:Jenkins Report - @{Document.title}</param>
<param type="stringlist" name="to">expr:Context["jenkins_report_email"]</param>
<param type="boolean" name="HTML">true</param>
<param type="boolean" name="rollbackOnError">true</param>
<param type="string" name="viewId">view_documents</param>
</operation>
<operation id="Seam.AddInfoMessage">
<param type="string" name="message">Email sent</param>
</operation>
</chain>
<chain id="JenkinsReportsContainerCreation">
<operation id="Context.FetchDocument"/>
<operation id="Document.SetProperty">
<param type="serializable" name="value">http://qa.nuxeo.org/jenkins/view/Dashboard/</param>
<param type="string" name="xpath">jenkinsreports:view_url</param>
<param type="boolean" name="save">false</param>
</operation>
<operation id="Document.SetProperty">
<param type="serializable" name="value">http://qa.nuxeo.org/jenkins/claims/</param>
<param type="string" name="xpath">jenkinsreports:claim_url</param>
<param type="boolean" name="save">false</param>
</operation>
</chain>
</extension>
<extension target="org.nuxeo.ecm.directory.sql.SQLDirectoryFactory" point="directories">
<directory name="JenkinsFailCauses">
<schema>vocabulary</schema>
<dataSource>java:/nxsqldirectory</dataSource>
<cacheTimeout>3600</cacheTimeout>
<cacheMaxSize>1000</cacheMaxSize>
<idField>id</idField>
<autoincrementIdField>false</autoincrementIdField>
<createTablePolicy>always</createTablePolicy>
<table>studio_vocabulary_JenkinsFailCauses</table>
<dataFile>data/vocabularies/JenkinsFailCauses.csv</dataFile>
</directory>
</extension>
<extension target="org.nuxeo.ecm.directory.ui.DirectoryUIManager" point="directories">
<directory name="JenkinsFailCauses" layout="vocabulary" sortField="label"/>
</extension>
<extension target="org.nuxeo.ecm.platform.actions.ActionService" point="filters">
<filter id="create" append="true">
<rule grant="false">
<type>JenkinsReport</type>
<type>JenkinsReportsContainer</type>
</rule>
</filter>
</extension>
<extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager" point="widgettypes">
<documentation>Widget types declared in studio</documentation>
<widgetType name="studio_header">
<configuration>
<title>Header</title>
<description>
The header widget just displays the widget label.
</description>
<supportedModes>
<mode>edit</mode>
<mode>view</mode>
</supportedModes>
<fields>
<list>false</list>
<complex>false</complex>
<supportedTypes/>
<defaultTypes/>
</fields>
<handlingLabels>true</handlingLabels>
<categories>
<category>document</category>
<category>studio</category>
</categories>
<properties>
<layouts mode="any">
<layout name="studio_header_widget_type_properties_any">
<rows>
<row>
<widget>styleClass</widget>
</row>
<row>
<widget>style</widget>
</row>
</rows>
<widget name="styleClass" type="text">
<labels>
<label mode="any">Style class</label>
</labels>
<fields>
<field>styleClass</field>
</fields>
</widget>
<widget name="style" type="text">
<labels>
<label mode="any">Style</label>
</labels>
<fields>
<field>style</field>
</fields>
</widget>
</layout>
</layouts>
</properties>
</configuration>
<handler-class>
org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
</handler-class>
<property name="template">
/widgets/studio_header_widget.xhtml
</property>
</widgetType>
<widgetType name="filesList">
<configuration>
<title>Files</title>
<description>
<p>
The Files displays an editable list of files, using javascript to
keep the uploaded file path when adding several files in a row.
</p>
<p>Items are defined using sub wigdets configuration.</p>
<p>
This is actually a template widget type whose template uses a
<nxu:inputList /> tag in edit or create mode, and a table
iterating over items in other modes.
</p>
</description>
<categories>
<category>document</category>
<category>studio</category>
</categories>
<supportedModes>
<mode>edit</mode>
<mode>view</mode>
</supportedModes>
<acceptingSubWidgets>true</acceptingSubWidgets>
<fields>
<list>true</list>
<complex>false</complex>
<supportedTypes>
<type>blob</type>
</supportedTypes>
<defaultTypes>
<type>blob</type>
</defaultTypes>
</fields>
<properties>
<layouts mode="edit">
<layout name="list_widget_type_properties_edit">
<rows>
<row>
<widget>required</widget>
</row>
<row>
<widget>diff</widget>
</row>
</rows>
<widget name="required" type="checkbox">
<labels>
<label mode="any">Required</label>
</labels>
<fields>
<field>required</field>
</fields>
</widget>
<widget name="diff" type="checkbox">
<labels>
<label mode="any">Diff</label>
</labels>
<fields>
<field>diff</field>
</fields>
</widget>
</layout>
</layouts>
</properties>
</configuration>
<handler-class>
org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
</handler-class>
<property name="template">/widgets/files_list_widget_template.xhtml
</property>
</widgetType>
</extension>
</component>